package Frame.battleanimation;

import FCRendering.FCRMaster;
import VWorldGameStudio.FCMonster;
import VWorldGameStudio.FCPlayerBattleWrap;
import lombok.Getter;
import lombok.Setter;

import java.awt.*;
import java.util.ArrayList;

import static FCRendering.FCRMaster.fcv;

public abstract class ABattleAni {
    //就是将会刷多少次
    @Getter
    @Setter
    protected int allFrames = 30;
    //动画过程中，角色需要进行的偏移
    public int[] playerOffset = new int[]{0,0};

    //TODO  如果这个动画是人物被打了，那这个就表示人物要不要显示，要是怪被打了，那就是怪的显示
    public boolean beHitShowVisable = true;

    public ArrayList<FCMonster> hitFcMonsters = new ArrayList<>(0);

    //打人物
    public ArrayList<FCPlayerBattleWrap> hitFcPlayerWrap = new ArrayList<>(0);
    @Getter
    /**
     * 人打怪还是怪打人
     */
    protected boolean isPlayerAttackMode = true;//默认是人打怪，

    public int[] getPlayerOffset() {
        return playerOffset;
    }


    //一个计算帧线程调用的，去变更动画的状态属性
    public abstract void nextFrame(int frame);

    //UI线程的不断刷新调用绘画
    public abstract void paintBattleSceen(Graphics g, FCRMaster fcrMaster);

    //给投掷动画用的
    public boolean attackReadyState = true;
}
